package br.com.swp.campestre.session;

import java.util.List;

import javax.ejb.Stateful;

import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.Name;

import br.com.swp.campestre.entity.ParcelaFinancimentoCEF;
import br.com.swp.campestre.entity.Venda;
import br.com.swp.campestre.enumeration.StatusParcela;
import javax.ejb.Remove;

/**
 * Session Bean implementation class QuitaParcelaCEFBean
 */
@Stateful
@AutoCreate
@Name("QuitaParcelaCEF")
public class QuitaParcelaCEFBean implements QuitaParcelaCEF {

    /**
     * Default constructor. 
     */
    public QuitaParcelaCEFBean() {
        // TODO Auto-generated constructor stub
    }
    
    public void quitar(ParcelaFinancimentoCEF parcelaFinancimentoCEF) throws Exception{
    	
    	if (parcelaFinancimentoCEF == null) {
    		throw new Exception("Parcela invalida");
		}
    	
    	if (parcelaFinancimentoCEF.getStatusParcela().equals(StatusParcela.PAGA)) {
    		throw new Exception("Parcela ja foi Paga");
    	}
    	
    	parcelaFinancimentoCEF.setStatusParcela(StatusParcela.PAGA);
    }
    
    public boolean existeParcelaPendente(Venda venda) throws Exception{
    	
    	if (venda == null){
    		throw new Exception("Venda nao informada");
    	}
    	
    	List<ParcelaFinancimentoCEF> parcelas = venda.getParcelasFinancimentoCEF();
    	
    	if(parcelas == null || parcelas.isEmpty()){
    		throw new Exception("Venda nao foi parcelada pela CEF");
    	}
    	
    	for (ParcelaFinancimentoCEF _p : parcelas) {
			if(_p.getStatusParcela().equals(StatusParcela.PENDENTE)){
				return true;
			}
		}
    	
    	return false;
    	
    }

    @Destroy
	@Remove
	public void remove() {
	}

}
